package com.whc.gulimall.scekill.service;

import com.whc.gulimall.scekill.dto.SecKillSkuDTO;

import java.util.List;
import java.util.concurrent.ExecutionException;

/**
 * @author angaoen
 */
public interface SecKillService {

    /**
     * 上架近三天的秒杀商品
     */
    void upSecKillProductOfThreeDays() throws ExecutionException, InterruptedException;

    /**
     * 获取最近秒杀的商品信息
     *
     * @return 最近秒杀的商品信息
     */
    List<SecKillSkuDTO> listSecKillInfo();

    /**
     * 通过skuId获取到sku在redis秒杀中的信息
     *
     * @param skuId skuId
     * @return sku在redis秒杀中的信息
     */
    SecKillSkuDTO getSkuInfoBySkuId(Long skuId);

    /**
     * 秒杀商品
     *
     * @param killId     skuId_promotionSessionId
     * @param randomCode 随机码
     * @param num        抢购书
     * @return 订单号
     */
    String kill(String killId, String randomCode, Integer num);
}
